编者说明
第一部分:各种算法简单例子
训练线性回归——梯度下降
线性分类模型的分类不平衡问题
如何计算逆矩阵
训练线性回归——最小二乘
训练逻辑回归——梯度下降
决策树的划分依据选择
用信息增益判断划分依据(ID3算法)
用信息增益率作为划分依据
用基尼系数作为划分依据
决策树剪枝
预剪枝
后剪枝
缺失值处理
重赋权法Adaboost
随机森林
提升树算法
交叉熵/对数损失函数
线性核硬间隔SVM
核函数
最简单的生成式模型——离散值属性的朴素贝叶斯
连续值属性的朴素贝叶斯
高斯判别分析
训练多层神经网络——误差逆传播(BP)算法
卷积神经网络
最简单的无监督——K-means聚类
EM算法经典例子——硬币模型
PCA降维
Attention模型(我不懂,纯搬运,欢迎补充)
半监督SVM——TSVM算法
VAE和变分推断(ELBO
关联规则挖掘
模型评估
K近邻分类
HAC
A*算法
第二部分:开卷考试简答题参考
无监督和有监督优缺点
常考模型优缺点
聚类
集成学习
数据准备(数据集划分)
优化方法
BP算法&EM算法
线性&逻辑--回归模型的选择
分类模型的选择
激活函数
特征选择与特征工程
特征尺度维度问题及解决
欠拟合与过拟合
降维与升维
损失函数
大模型训练
ChatGPT问题
No. 1 / 49
深度学习与大模型简答题
深度学习基础
生成对抗网络(GANs
VAE
递归神经网络(RNN
双向编码器表示转换(BERT
变分推断下界(ELBO
Diffusion Model
Transformer
CNN
编者说明
最后编辑于2023.06.20
本文档是笔者在2022-2023春季学期期末考前突击时制作的,最初的目的是用尽可能简化的例子快速理
解课程讲授的主要内容,加深印象。由于笔者基础薄弱且旷课太多,拖到考前两天才从头看起,感到看
书上的公式较为吃力,因此特别需要用实例来阐释知识点。
内容简介:
文档第一部分是一些重要算法、技术的手算实例,大部分是由ChatGPT生成后进行修改整理的,还
有个别来源于作业题或者网上搬运。
第二部分我总结了一些非计算类的常考点,既可以用来加深印象,也可以在开卷考试时直接翻阅。
深度神经网络、深度生成模型等复杂模型是不会考计算题的,所以在时间有限的情况下,可以不掌
握它们的原理,了解基本结构、特性和优缺点即可。而由于笔者只用了两天时间复习,这部分内容
也是ChatGPT生成的,很多内容自己都没有真正理解,因此难免会有错漏。
适用人群:
我在选择考点的时候结合了自己班级(陈立老师)的作业题和PPT、安泰李成璋老师的PPT以及往
年试卷。考试结束后,我又根据考试内容补充了一些内容进去。
总体上,这个文档可以作为开卷考试材料,同时适合基础薄弱、平时没有好好听课的同学复习使
用。
对于ChatGPT生成内容中的错漏以及翻译问题,还请理解和谅解,欢迎修正补充后直接重发传承
如果你觉得这个文档对你有帮助,可以在传承点个赞;如果你不喜欢这份文档,也请不要点踩(毕竟我
没要积分),拜托拜托~
No. 2 / 49
第一部分:各种算法简单例子
训练线性回归——梯度下降
已知 , ,学习率为 ,用MSE 代价函数,及梯度下降方法进行两次迭代计算
训练一个线性模型 ,假设初始起点
第一次迭代:计算偏导
计算迭代后的参数值
第二次迭代:
No. 3 / 49
线性分类模型的分类不平衡问题
如图,蓝色类数目远大于红色,调整前红色易被错判,用再缩放进行调整。
如何计算逆矩阵
对于足够简单的矩阵:设值,待定系数解方程。
另一种较简单的方法是高斯消元法
Step 1: 在右边并一个单位矩阵,写出增广矩阵。
Step 2: 通过行操作,把左边的矩阵变为下三角矩阵。
... 总之就是行之间的线性操作
Step 3: 右边的矩阵即为得到的逆矩阵。
A = | 213 |
 | 102 |
 | 412 |
[A | I] = | 213 | | 1 0 0 |
    | 10 2 | | 0 1 0 |
    | 4 12 | | 0 0 1 |
| 2.5 00 | | 0.5  1   7/11 |
|010 | |1  210/11 |
|001 | |1.5/11 6/111/11 |
|0.51  7/11 |
|1  210/11 |
| 1.5/11 6/11 1/11 |
No. 4 / 49
训练线性回归——最小二乘
用以下数据训练一个线性回归模型,求出系数θ0~θ3
Step 1: 在左边加一个全是 1 的列,也就是 项的系数。
Step 2: 计算
Step 3: 计算 的逆矩阵
Step 4: 计算
Step 5: 计算
得到的线性模型为
X = [[1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
  [10, 11, 12]]
Y = [5, 10, 15, 20]
[[ 1. 1. 2. 3.]
[ 1. 4. 5. 6.]
[ 1. 7. 8. 9.]
[ 1. 10. 11. 12.]]
[[ 4. 22. 26. 30.]
[ 22. 126. 150. 174.]
[ 26. 150. 180. 210.]
[ 30. 174. 210. 246.]]
[[ 0.05555556 0.13888889 0.13888889 0.05555556]
[ 0.13888889 0.47222222 0.36111111 0.13888889]
[ 0.13888889 0.36111111 0.36111111 0.13888889]
[ 0.05555556 0.13888889 0.13888889 0.05555556]]
[ 50. 290. 350. 410.]
[ 2.5. 1. 1. 1. ]
No. 5 / 49
Student Hours Studied (X) Exam Result (Y)
1 4 Pass
2 6 Pass
3 2 Fail
训练逻辑回归——梯度下降
用以下数据训练一个逻辑回归模型。
我们希望一个样本是正例的相对几率由线性模型给出,范围是0-1,分类阈值是0.5
假设初始系数为
要最小化损失函数(对数似然函数取反):
样例1的预测结果用如下方法计算:
对于损失函数 求偏导,用梯度下降方法求出下一代的系数(学习率取0.15)
损失函数对第j个系数的一阶偏导:
使用同样方法,反复迭代即可训练出合适的
No. 6 / 49
Instance Feature A Feature B Outcome
1 True True Positive
2 True False Positive
3 False True Negative
4 False False Negative
决策树的划分依据选择
用以上数据训练一个决策树.
用信息增益判断划分依据(ID3算法)
Step1:计算信息:
为当前集合中第k类样本所占比例,比如在4个样本中Positive2/4
Step2:算按照各个feature划分的信息增:
Subset 1: Instances with Feature A = True,熵为0
Subset 2: Instances with Feature A = False,熵为0
Information gain of Feature A
Similarly, Information gain of Feature B
因此,选择信息增益大的A为划分依据。
No. 7 / 49
用信息增益率作为划分依据
Step1: 计算各个feature的固有值
Intrinsic information for Feature A
Step2: Gain ratio for all features
Gain ratio for Feature A
Gain ratio for Feature B = 0
因此,选择增益率大的A为划分依据。
用基尼系数作为划分依据
Step 1: 计算基尼值(随机抽取的两个样本不同类的概率)
Step 2: 计算各个feature的基尼系数
因此,选择基尼系数小的A作为划分依据。
No. 8 / 49
Instance Feature X Feature Y Outcome
1 1 1 Positive
2 2 2 Positive
3 3 3 Positive
4 4 4 Negative
5 5 5 Negative
Instance Feature X Feature Y Outcome
6 3 4 Positive
7 3 3 Positive
8 5 5 Negative
决策树剪枝
预剪枝
已经得到如下决策树,要对 进一步划分,判断是否预剪枝:
将其进行进一步划分得到新的树2
在下面的验证集中进行验证:
剪枝前精度=66.67%,剪枝后精度=66.67%
没有增加验证精度,故进行预剪枝。
后剪枝
反过来考虑,原本是树2,将节点 替换为叶结点后,节点中有有4-Negative5-Negative
则将 节点标记为Negative
在验证集中验证,精度没有下降,故进行剪枝。
No. 9 / 49
Color Size Label
1 Red Small Yes
2 Red ? Yes
3 Green Small No
4 Red Large No
5 ? Small Yes
6 Green Large No
缺失值处理
对于属性Color,无缺失样例所占比例为
初始时,每个样例的权重 均为1,在无缺样本中,占比为
在无缺样例中计算信息熵
无缺样例中的信息增益
整体样本中的信息增益
同理计算其他属性的信息增益。
假设 最大,按照Color划分,无缺的样例划分后权重保持1
而缺失样例同时划入RedGreen两类并赋权,权重分别为 。(按照无缺的数目)
在下一次计算时,以计算Red集合中按Size划分前的信息熵为例。
此时Red集合中的样例有{(样例1,权重1),(样例2,权重1),(样例4,权重1),(样例5,权重3/5)},
其中样例2Size属性缺失,不计入。
对于连续值处理,采用二分法,选择增益最大的划分点即可,很好理解。
再提一下多变量决策树,简单讲就是可以从平行分类边界改为复杂分类边界,提升效果。
No. 10 / 49
x y W
1 +1 0.2
2 -1 0.2
3 -1 0.2
4 -1 0.2
5 +1 0.2
重赋权法Adaboost
假设有以下训练集,其中 x 是特征,y 是标签,w是样本权重:
我们使用决策树桩作为弱分类器,用AdaBoost 算法推导前三个弱分类器 (m=3)
决策树桩的形式如下,其中 k 为分类阈值:
初始数据权重 ,使误差率最低的分类阈值取
更新数据权重:
分类正确则权重下降,错误则上升。
其中 是规范化系数,使得 之和等于1
更新权重,第三个树桩
前三个分类器为:
No. 11 / 49
X1 X2 X3 Y
1 2 4 1 A
2 3 5 2 A
3 4 2 3 B
4 2 1 4 B
5 1 3 5 B
随机森林
用下面的数据训练随机森林并预测:
Step 1: Bootstrap Sampling,有放回地取出m个采样集(m=3)。这一步也用于Boosting
Step 2: Feature Randomization,从d个属性中随机选择一个包含k个属性的子集。
k=2,建议 )
Step 3:用每个属性子集训练决策树,在子集范围内选择最优划分属性。
Decision Tree 1: Trained on Bootstrap Sample 1 with features {X1, X2}
Decision Tree 2: Trained on Bootstrap Sample 2 with features {X2, X3}
Step 4:用每个决策树进行预测,假设
Final Prediction: A (since Decision Tree 1 predicted class A)
Bootstrap Sample 1: {1, 2, 3}
Bootstrap Sample 2: {4, 2, 3}
Bootstrap Sample 3: {3, 4, 5}
Decision Tree 1 features: {X1, X2}
Decision Tree 2 features: {X2, X3}
Decision Tree 3 features: {X1, X3}
Decision Tree 1 Prediction: A
Decision Tree 2 Prediction: B
Decision Tree 3 Prediction: B
No. 12 / 49
Data Point X Y
1 1 3
2 2 5
3 3 7
4 4 9
5 5 11
提升树算法
用下面的数据训练提升树:
初始化提升树:
计算残差:
用残差训练一个树:
Let's say the decision tree splits the data at X=3, resulting in two regions: and .
The decision tree predicts for and for .
更新模型:原提升树+学习率*残差决策树,这里学习率取0.1
Updated Prediction: Mean(Y) + Learning Rate * Decision Tree Predictions
重复上述步骤直到收敛。
Initial Prediction: Mean(Y) = 7
Residual Errors: [3 − 7, 5 − 7, 7 − 7, 9 − 7, 11 − 7] = [ − 4, − 2, 0, 2, 4]
Updated Prediction: 7 + 0.1 [ − 3, − 3, 3, 3, 3] = [6.7, 6.7, 7.3, 7.3, 7.3]
No. 13 / 49
交叉熵/对数损失函数
表示的是当前模型的分布和数据集分布的相似程度取反。
Suppose we have a dataset of four instances with their true labels and predicted probabilities:
Instance 1: True label = A, Predicted probabilities = [0.7, 0.2, 0.1]
Instance 2: True label = B, Predicted probabilities = [0.3, 0.5, 0.2]
Instance 3: True label = C, Predicted probabilities = [0.2, 0.1, 0.7]
Instance 4: True label = A, Predicted probabilities = [0.6, 0.3, 0.1]
交叉熵/对数损失函数在分类问题中的形式:
For Instance 1 (True label = A):
For Instance 2 (True label = B):
For Instance 3 (True label = C):
For Instance 4 (True label = A):
No. 14 / 49
线性核硬间隔SVM
用硬间隔的线性可分支持向量机分类以下点:
正例点 ; 负例点
画图后可以看出支持向量为A,B,C,则 .
写出损失函数的对偶问题
整理得
代入后变为
分别对 求偏导,令偏导为0,可解得
从而
代入任意一点可得
分类结果如图:
No. 15 / 49
核函数
最常见的三种核对比:线性、多项式和RBF
对于多项式与RBF,改变gamma的值看看:
可以看到,gamma值越小,决策边界越平滑。
应该根据数据分布选择合适的gamma
No. 16 / 49
*Fruit* *Color* *Shape* *我们假设两个属性相互独立!*
Apple Red Round
Apple Red Round
Orange Orange Round
Orange Orange Elongated chatGPT说就是不圆的意思
Apple Red Round
Orange Red Round 我不管,红橙也是橙子!
Apple Orange Round
最简单的生成式模型——离散值属性的朴素贝叶斯
计算不同水果出现的概率 (略去平滑)
计算不同水果中各个属性出现的概率,并且进行拉普拉斯平滑修正:
(其中N1表示Color属性可能的取值数,N2表示Shape属性可能的取值数)
比如在样例中,苹果没有Elongated,这就可能对其他属性产生影响,因此需要平滑。
生成:现在你又得到了一个又红又圆的水果,想知道它是苹果还是橙子。
计算它是苹果的概率,用贝叶斯公式:(P(c)称先验概率)
同理计算它是橙子的概率:
显然 更大,因此将这个水果分类为苹果。
这里也可以看出, 之和不是1
No. 17 / 49
*Email* *Free* *Money* *Spam?*
Email 1 10 No Yes
Email 2 5 Yes No
Email 3 8 Yes Yes
Email 4 4 No No
Email 5 9 No Yes
连续值属性的朴素贝叶斯
下例中,Free表示Free这个单词在邮件中出现的次数,可以看做连续值。
计算先验概率:
假设Free属性的类条件概率符合高斯分布。计算高斯分布参数:
在垃圾邮件中(c=Spam):
在非垃圾邮件中(c=Not Spam):
生成:现在预测Free=7Money=Yes的一封邮件。Money处理方法同例15
用高斯分布计算Free属性的类条件概率:
计算该邮件是垃圾邮件和非垃圾邮件的概率:
所以该邮件被分类为垃圾邮件。
No. 18 / 49
高斯判别分析
下面是一个单独的二维高斯分布的例子:
其中
对该分布进行可视化:如图1,二维的高斯分布的形状近似椭圆。
高斯判别分析是一个二分类模型。
假设class0服从二维高斯分布0class1标签下的数据点服从二维高斯分布1
二者的 不同但 相同,即中心不同但形状相同。
分别计算属于class0class1的数据点的样本均值,作为
计算共同的协方差矩阵
进行预测时,计算数据点在两个分布下的概率,概率大的即为判别结果。
如图2,决策边界上的点是两个分布下概率一致的点。
高斯判别分析是逻辑回归的特例,其假设比逻辑回归更强,因此逻辑回归比高斯判别更健壮。在数据量
大且分布没有那么合理时,倾向于选择逻辑回归。
No. 19 / 49
训练多层神经网络——误差逆传播(BP)算法
训练如图的网络,其中隐层和输出层都用sigmoid作为激活函数。 为权, 为阈值。
训练样例为: ,输出
假设各连接权和阈值的初始值为:
(注:这个模型简单得过于不合理,阅读时注意思考一下如果输入多于1个时套公式有哪些不同)
计算当前的输出:
BP算法对 进行优化,给定学习率
用链式法则可以得到
其中
sigmoid函数的特殊性质)
从而得到
用类似的方法可以更新所有的连接权和阈值。
No. 20 / 49
卷积神经网络
给定一个 5*5 Image 1 包含 Red, Green, Blue 三个通道。其中 Red Channel
假设一个 stride=1 333 卷积核,用它的第一层:
对于左上角 3*3 image,计算卷积:
乘积加和:
步进计算整个 image 得到 feature map
如果希望输出的 feature map 依然是 5*5,使用 Padding 方法:
(以下自动生成,不保证正确,知道意思就行)
得到的 feature map 变为:
使用 average pooling
[[255, 0, 0, 0, 0],
[255, 0, 0, 0, 0],
[255, 0, 0, 0, 0],
[255, 0, 0, 0, 0],
[255, 0, 0, 0, 0]]
[[0.1, 0.2, 0.1],
[0.3, 0.4, 0.3],
[0.1, 0.2, 0.1]]
[[255 0.1, 0 0.2, 0 0.1],
[255 0.3, 0 0.4, 0 0.3],
[255 0.1, 0 0.2, 0 0.1]]
[[76.5, 76.5, 0, 0],
[76.5, 76.5, 0, 0],
[76.5, 76.5, 0, 0],
[76.5, 76.5, 0, 0]]
[[0, 0, 0, 0, 0, 0, 0],
[0, 255, 0, 0, 0, 0, 0],
[0, 255, 0, 0, 0, 0, 0],
[0, 255, 0, 0, 0, 0, 0],
[0, 255, 0, 0, 0, 0, 0],
[0, 255, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0]]
[[25.5, 76.5, 76.5, 0, 0],
[76.5, 229.5, 229.5, 0, 0],
[76.5, 229.5, 229.5, 0, 0],
[76.5, 229.5, 229.5, 0, 0],
[25.5, 76.5, 76.5, 0, 0]]
No. 21 / 49
对于 5 不是 2 的倍数的问题,一种简单的方法是直接舍弃最后一列和最后一行。
Flatten 层:
假设全连接层的一个输出神经元有连接权 i = 1,2,3,4,使用激活函数 f(x)
则输出
补充:一般地,如何计算得到的 feature map 的各维度大小:
[[102, 76.5],
[153, 76.5]]
[102, 76.5, 153, 76.5]
No. 22 / 49
3.317 1.732
3.742 2.449
2.450 3.162
3.742 4.690
2.828 4.472
3.667 1.173
1.202 3.518
1.054 2.716
1.453 2.979
2.603 1.369
4.842 3.298
3.283 2.894
最简单的无监督——K-means聚类
用下面的样本进行聚类:
采用k-means算法,k = 2,距离为欧式距离,初始化 为聚类中心。
初始化聚类中心为
计算各点到聚类中心的欧氏距离:例如,
将样本分为两簇:
求坐标平均值,得到新的聚类中心:
计算新的欧氏距离:
将样本分为两簇: ,与前一次分类结果相同,停止计算。
No. 23 / 49
实验次数 结果
1 正正反正反
2 反反正正反
3 正反反反反
4 正反反正正
5 反正正反反
1 2 3 4 5
0.14 0.61 0.94 0.14 0.61
EM算法经典例子——硬币模型
A硬币的概率为 ,用B硬币的概率为
投掷A硬币得到正面的概率是 ,投掷B得到正面的概率是
隐变量就是A还是投B”,投A记为1,投B记为0
先初始化
对于实验1,如果是硬币1,得出正正反正反的概率为:
E:用当前的参数估计隐变量(10)的分布
类似地,得到5次实验中投A的概率:
M:极大似然估计 。以 为例,
在实验一中,投A概率为0.14,而投掷结果为
继续依次迭代即可。(我真的没学懂,如有错误请谅解)
混合高斯模型中的EM算法似乎好懂一些,西瓜书P210的例子就很简单。
No. 24 / 49
PCA降维
已知原始数据如下(5个二维点),计算用PCA降维后的数据(二维降到一维)
数据中心化:
协方差矩阵
求解特征值:
求解特征向量:
,特征向量 ,经标准化得
,特征向量 ,经标准化得
要将二维降至一维,取最大的1个特征值对应的特征向量(降至几维取几个),
即降维矩阵(向量):
降维后的数据为
No. 25 / 49
Attention模型(我不懂,纯搬运,欢迎补充)
以一个自动翻译模型为例:
Source sentence (English): "The cat is sitting on the mat."
Target sentence (French): "Le chat est assis sur le tapis."
编码:编码器获取源语句,对其进行标记,并将其编码为隐藏状态序列。
每个隐藏状态表示源句子中的一个单词。此例中,编码器将对英语句子进行如下编码。
表示编码器的隐藏状态,k1对应“The”k2对应“cat”k3对应“is”,依此类推。
表示解码器在特定时间步长的隐藏状态,指示解码器的当前状态,q1对应于生成目标句子中的第一个单
词时解码器的隐藏状态,q2对应于生成第二个单词时的状态,依此类推。
也是编码器的隐藏状态,表示句子中每个单词的相关内容或含义,v1对应于与“the”相关联的隐藏状态,
v2对应于“cat”v3对应于“is”,依此类推。
解码:解码器基于当前隐藏状态和使用注意力计算的上下文向量来预测下一个单词。
在本例中,解码器根据上下文向量和当前隐藏状态生成单词“assis”
Attention计算编码器中每个隐藏状态的相关性或重要性,以预测当前目标词。
在这个例子中,注意力机制为对应于英语单词“is”“siting”的隐藏状态分配了更高的权重,因为它们与
预测法语单词“assis”更相关。
当前query (Q): q4 (对应于解码器的隐藏状态,用于生成第四个字).
计算注意得分attention scores
当前query q4 k1, k2, k3, k4, k5, k6, and k7 相对比计算attention scores.
attention scores计算权值:
假设attention scores被加到值 v1, v2, v3, v4, v5, v6, and v7上,则得到的权重:
用权值加和得到上下文矢量:
生成目标单词:
解码器使用上下文向量c4和当前查询q4来预测目标句子中的下一个单词,即“assis”。生成该单词的具体
机制可能因解码器的架构而异。一种可能性是将c4q4馈送到递归神经网络(RNN)中,例如LSTM
GRU,然后是softmax层,以生成目标词汇表中每个可能单词的概率。选择概率最高的单词(例如
“assis”)作为当前时间步长的预测。
No. 26 / 49
半监督SVM——TSVM算法
现有2个标记的数据点和3个未标记的数据点:
Data Point 1: Feature vector = [2, 4], Label = "Positive" (Cat)
Data Point 2: Feature vector = [6, 8], Label = "Negative" (Dog)
Data Point 3: Feature vector = [3, 5], Unlabeled
Data Point 4: Feature vector = [7, 9], Unlabeled
Data Point 5: Feature vector = [4, 6], Unlabeled
其中的模型含有松弛变量,这些标记点的系数折中参数要大于其他点。
先用已标记的两个点训练一个SVM(理论上两个点超平面不能收敛,但无所谓)
求解松弛向量和超平面,忽略未标记点的松弛变量项。
用这个SVM对三个未标记点进行预测:假设结果为
Data Point 3: [3, 5] - The SVM model predicts "Positive" (Cat).
Data Point 4: [7, 9] - The SVM model predicts "Negative" (Dog).
Data Point 5: [4, 6] - The SVM model predicts "Positive" (Cat)
把预测结果作为伪标记赋给三个点,得到更新的dataset
Data Point 1: Feature vector = [2, 4], Label = "Positive" (Cat)
Data Point 2: Feature vector = [6, 8], Label = "Negative" (Dog)
Data Point 3: Feature vector = [3, 5], Label = "Positive" (Cat) [Pseudo-label]
Data Point 4: Feature vector = [7, 9], Label = "Negative" (Dog)[Pseudo-label]
Data Point 5: Feature vector = [4, 6], Label = "Positive" (Cat)[Pseudo-label]
根据松弛变量找出两个很可能判错的异类伪标记互换,
Data Point 3: Feature vector = [3, 5], Label = "Negative" (Dog) [Switched pseudo-label]
Data Point 4: Feature vector = [7, 9], Label = "Positive" (Cat) [Switched pseudo-label]
逐渐增大未标记点的折中参数,继续求解松弛向量和超平面,直到标记和未标记的点的折中参数相等。
No. 27 / 49
VAE和变分推断(ELBO
(纯搬运,我要是能看懂就好了...
假设我们有一个具有二维潜在空间的简单VAE。我们将使用高斯分布作为我们的先验分布,并假设我们
的编码器网络输出每个输入图像的平均值(mu)和标准偏差(sigma)向量。解码器网络从潜在矢量重
建图像。
编码器:
假设我们有一个输入图像x,编码器网络为潜在变量z产生以下平均值和标准差向量:
从潜在空间采样:
使用重新参数化技巧(reparameterization )从高斯分布中采样潜在向量z。对于z的每个元素,从标准
高斯分布(epsilon)中采样,并用编码器的平均值和标准偏差对其进行缩放:
解码器:
解码器网络以潜在向量z为输入,重建图像。让我们假设它生成重建的图像x'
计算ELBO**由两项组成,重建损失和KL发散损失。
重建损失:
假设我们使用均方误差(MSE)作为重建损失函数。我们将原始图像x与重建图像x’进行比较,以计算重
建损失:
KL发散损失:
KL发散损耗测量潜在向量z的分布与先验分布之间的差异。此例中,先验分布是标准高斯分布。
编码器分布 和先验分布 之间的KL发散可以计算为:
ELBO是重建损失和KL发散损失的总和,由超参数β加权:
ELBO = reconstruction_loss + β* kl_loss
通过在训练过程中最小化负ELBO,我们让VAE逐渐能够准确地重建原始图像,同时正则化潜在空间以遵
循先验分布。这使得VAE能够从潜在空间生成新的样本
No. 28 / 49
TID Items
1 A, B, C
2 A, C, D
3 B, C
4 A, B, D
5 A, C, D
6 D, E
A B C D E
4/6 3/6 4/6 3/6 1/6
Cand AB AC AD BC BD CD
Supp 2/6 3/6 3/6 2/6 1/6 2/6
Cand ABC ACD
Supp 1/6 2/6
关联规则挖掘
考虑一个包含6个事务和5个项目的数据集,如表1所示。
设最低支持(minsup)30%
Apriori算法来查找数据集中的所有频繁项集,
并以60%的最小置信度(minconf)填充所有强关联规则。
Step 1: 计算单个item的支持度,选出frequent 1-itemsets
Step2:得到candidate 2-itemsets并计算支持度。
基于minsup (30%) 上述集合进行剪枝,
Frequent 2-itemsets: {AB, AC, AD, BC, CD}
Step3:得到candidate 3-itemsets并计算支持度。
Frequent 3-itemsets: {ACD}
Step 4: 得到完整的frequent itemsets: {A, B, C, D, AB, AC, AD, BC, CD, ACD}.
Step5:下计算所有可能的关联的置信度:
No. 29 / 49
Association Rule Confidence
A -> B 2/4 = 0.5
B -> A 2/3 0.67
A -> C 3/4 = 0.75
C -> A 3/4 = 0.75
A -> D 3/4 = 0.75
D -> A 3/4 = 0.75
B -> C 2/3 0.67
C -> B 2/4 = 0.5
C -> D 2/4 = 0.5
D -> C 2/4 = 0.5
A -> CD 2/4 = 0.5
CD -> A 2/2 = 1
C -> AD 2/4 = 0.5
AD -> C 2/3 0.67
D -> AC 2/4 0.5
AC -> D 2/3 0.67
B -> A
A -> C C -> A
A -> D D -> A
B -> C
CD -> A
AD -> C
AC -> D
取得置信度大于60%的强关联规则集合:
No. 30 / 49
Predicted
Actual Spam Non-spam Total
Spam TP=38 FN=2 P
Non-spam FP=5 TN=55 N
P’ N’
模型评估
对于这同一个二分类器,probabilities的不同阈值可以得到不同的表现。
这里的probability就是指样例为正例的概率。
正常当阈值为0.5时,我们已经计算出了TPR, FPR(取值范围均为0-1)
TPR (True Positive Rate) = 0.95
FPR (False Positive Rate) = 0.917.
改变阈值,绘制出TPR-FPR曲线,就是我们所说的ROC曲线。
ROC与横轴所围成的面积就是AUC,其值越大,说明模型表现越好。
No. 31 / 49
Point X Y Class
P1 2 4 A
P2 4 2 A
P3 4 4 B
P4 6 2 B
Point X Y Class Distance to P5
P1 2 4 A 1.41
P2 4 2 A 1.41
P3 4 4 B 1.41
P4 6 2 B 3.16
K近邻分类
现在对于 point5进行分类。
计算Point5到已知分类点的距离。
近邻为Point1,2,3。他们中的多数被分类为A,因此P5也被分类为A
No. 32 / 49
A B C D E
A -
B 5.83 -
C 2.82 5.00 -
D 6.32 2.82 5.83 -
E 5.39 4.47 8.94 2.24 -
A B C,D E
A -
B 5.83 -
C,D 4.07 5.00 -
E 5.39 4.47 2.24 -
HAC
Data points: A(2, 5), B(6, 8), C(3, 3), D(8, 3), E(9, 10)
Step 1: Calculate distance between clusters
Step 2: Merge the closest clusters
Next, we find the two closest clusters based on the distances and merge them:
Merge C and D. New cluster: (C, D) with centroid (3.5, 3.0)
Updated distance matrix:
Step 3: Continue merging clusters
New cluster: (B, E) with centroid (7.5, 9.0)
New cluster: ((C, D), (B, E)) with centroid (5.5, 6.5)
New cluster: (A, (C, D), (B, E)) with centroid (4.5, 6.25)
The final result is one cluster containing all data points:
Cluster: (A, (C, D), (B, E)) with centroid (4.5, 6.25)
No. 33 / 49
A*算法
S is the starting point.G is the goal point.X represents obstacles.
Step 1: Initialize the openList with the starting node S (g = 0, h = distance to goal).
Step 2: Select the node with the lowest total cost from the openList .
Step 3: Expand the neighboring nodes of S (right, down).
Step 4: Select the node with the lowest total cost from the openList (Right node).
Until the goal node (G) is in the closedList, so the shortest path has been found.
.....
S.X..
...X.
....G
Open List: [S(g=0, h=6)]. Closed List: []
Open List: []. Closed List: [S(g=0, h=6)]
Open List: [Right(g=1, h=5, parent=S), Down(g=1, h=5, parent=S)]
Closed List: [S(g=0, h=6)]
Open List: [Down(g=1, h=5, parent=S)]
Closed List: [S(g=0, h=6), Right(g=1, h=5, parent=S)]
......
Shortest Path: S -> Right -> Right-Down -> G
No. 34 / 49
第二部分:开卷考试简答题参考
无监督和有监督优缺点
无监督学习:
优点:无监督学习可以从未标记的数据中发现隐藏的模式和结构,无需先验知识,具有较高的
灵活性。
缺点:无监督学习往往难以评估结果的准确性,因为没有明确的目标。另外,由于缺少标签信
息,结果的解释性较差。
有监督学习:
优点:有监督学习可以根据已标记的数据进行预测和分类,并能够利用标签信息来评估模型的
性能。
缺点:有监督学习需要大量的标记数据,且对数据质量要求较高。另外,模型的泛化能力受限
于标记数据的代表性。
常考模型优缺点
线性回归:
优点:线性回归简单且易于实现,对线性关系的建模效果良好,适用于大规模数据集。
缺点:线性回归无法处理非线性关系,容易受到异常值的影响。
逻辑回归:
优点:逻辑回归可以进行二分类或多分类任务,对概率估计较好,且计算效率高。
缺点:逻辑回归对特征之间的关系假设为线性关系,对非线性关系的拟合能力有限。
决策树:
优点:决策树易于理解和解释,能够处理非线性关系和多类别任务,对缺失值和异常值具有较
好的鲁棒性。
缺点:决策树容易过拟合,尤其在处理高维数据时容易产生复杂的树结构。
支持向量机(SVM):
优点:SVM对于小样本数据集有较好的泛化能力,可以处理高维数据和非线性关系,并且通
过核函数的选择可以灵活地拟合复杂的决策边界。
缺点:SVM对大规模数据集的训练较为耗时,同时对于噪声较多的数据和缺失值较多的数据
处理效果不佳。
GDA
优点:数据利用率高,对于缺失数据的处理较为灵活,对于异常值相对鲁棒。
缺点:高维数据问题,模型假设限制(假设数据服从高斯分布,如果数据的实际分布与模型假
设的分布不匹配,模型的性能可能会下降)。
贝叶斯分类器:
优点:简单高效,对小样本数据效果好,可处理多类别问题,对噪声数据具有鲁棒性。
缺点:特征独立性的假设(假设特征之间是条件独立的),对输入数据分布的敏感性,很大程
度上依赖于训练样本的质量和数量,难以处理连续特征和大规模特征空间(通常需要对连续特
征进行离散化处理)。
生成模型:
优点:生成模型可以学习数据的概率分布,可以用于生成新样本,对于缺失值处理和异常检测
有一定的优势。
缺点:生成模型的训练和推断过程较为复杂,且在高维数据上可能受到维度灾难的影响。
神经网络(包括深度学习):
优点:神经网络可以学习复杂的非线性关系,具有很强的拟合能力,在图像、语音等领域具有
优秀的表现。
No. 35 / 49
缺点:神经网络需要大量的数据和计算资源进行训练,模型结构和超参数的选择也较为困难,
容易出现过拟合问题。
聚类
聚类:
优点:聚类可以发现数据中的内在结构和相似性,对于无监督学习和数据探索非常有用。
缺点:聚类算法对于初始值敏感,结果可能受到噪声和异常值的干扰,同时评估聚类质量也较
为困难。
原型聚类:
优点:原型聚类通过将样本划分为不同的原型或中心,具有较好的可解释性和可视化效果,对
大规模数据集较为适用。
缺点:原型聚类对于数据集的形状和密度分布敏感,对噪声和离群值较为敏感。
K-means和高斯混合模型(GMM)的相同点和不同点:
相同点:
聚类目标:K-means和高斯混合模型都是用于将数据集划分成不同的聚类簇。
迭代优化:两者都通过迭代优化的方式,尝试找到最优的聚类结果。
硬聚类:K-means和高斯混合模型都属于硬聚类方法,即将每个样本分配到一个确定的
聚类簇中。
不同点:
数据分布假设:K-means假设聚类簇的边界为超平面,且样本点与聚类中心之间的距离
平方最小。而高斯混合模型假设每个聚类簇的数据符合高斯分布,通过多个高斯分布的
加权组合来表示整个数据集。
聚类结果表达:K-means给出每个样本点的硬聚类结果,即只属于一个聚类簇。而高斯
混合模型给出每个样本点属于不同聚类簇的概率,即软聚类结果。
参数数量:K-means只需要存储每个聚类簇的中心点,因此参数数量相对较少。而高斯
混合模型需要存储每个聚类簇的均值、协方差矩阵和权重,参数数量较多。
簇形状:K-means对于簇形状做出了限制,每个聚类簇为球形。而高斯混合模型可以适
应更加复杂的簇形状,每个聚类簇可以是椭圆形。
集成学习
集成学习:
优点:集成学习通过结合多个基学习器的预测结果,可以降低模型的方差,提高泛化能力,对
于处理复杂任务和减少过拟合有很好的效果。
缺点:集成学习需要构建和维护多个基学习器,对计算资源要求较高。
Adaboost
优点:Adaboost是一种集成学习算法,能够提高分类器的准确性,对于处理复杂问题和噪声
较多的数据有很好的效果。
缺点:Adaboost对于异常值和噪声敏感,同时对计算资源要求较高。
Bagging
优点:Bagging通过自助采样和集成投票的方式,能够减少模型的方差,提高泛化能力,对于
处理高方差的模型有好处。
缺点:Bagging无法减少模型的偏差,对于偏差较高的模型效果有限。
随机森林:
优点:随机森林是一种基于决策树的集成学习算法,具有较好的准确性和鲁棒性,能够处理高
维数据和缺失值。
缺点:随机森林的模型结构较为复杂,对计算资源要求较高。
提升树:
No. 36 / 49
优点:提升树能够逐步改善模型的预测能力,对于回归和分类任务都有很好的效果,且对异常
值和噪声的影响较小。
缺点:提升树容易过拟合,对于高维稀疏数据的处理效果有限。
数据准备(数据集划分)
留出法:
优点:留出法简单且易于实现,可以在较小的数据集上进行快速评估和模型选择。
缺点:留出法可能导致估计偏差,对于数据较少的情况下可能会产生较大的方差。
交叉验证:
优点:交叉验证可以更充分地利用数据,提供更可靠的模型评估结果,对于模型选择和调优有
很好的效果。
缺点:交叉验证的计算开销较大,特别是在数据集较大时,需要进行多次模型训练和验证。
自助法:
优点:自助法通过有放回地重复采样数据,可以更充分地利用数据集,对于小样本数据集和稀
有类别问题有好处。
缺点:自助法会引入自助采样引入的方差,可能导致模型评估结果偏乐观。
均方误差损失函数:
优点:均方误差损失函数在回归问题中易于优化,对异常值的敏感度较低。
缺点:均方误差损失函数对离群值较为敏感,容易导致较大的误差。
交叉熵损失函数:
优点:交叉熵损失函数在分类问题中可以直接衡量模型的概率预测准确性,对于概率分布的拟
合效果较好。
缺点:对于离群值和标签噪声较为敏感,容易导致模型学习过程不稳定。
线性核:
优点:线性核计算效率高,对于线性可分问题有较好的表现,模型解释性强。
缺点:线性核对于复杂非线性关系的拟合能力有限。
多项式核:
优点:多项式核能够引入非线性特征映射,对于一些非线性问题有较好的表现。
缺点:多项式核的复杂度随着多项式次数的增加而增加,容易导致过拟合问题。
RBF核:
优点:RBF核是一种常用的非线性核函数,对于复杂的非线性关系具有很好的拟合能力。
缺点:RBF核函数的超参数选择较为困难,对于大规模数据集的计算复杂度较高。
优化方法
梯度下降:
优点:梯度下降是一种常用的优化算法,具有全局收敛性和较好的拟合能力,在深度学习等领
域得到广泛应用。
缺点:梯度下降可能陷入局部最优解,对于非凸问题需要谨慎选择学习率和优化算法。
极大似然估计:
优点:极大似然估计是一种常用的参数估计方法,具有良好的统计性质和渐近正态性。
缺点:极大似然估计对于数据分布的假设要求较高,当假设不满足时,估计结果可能不准确。
拉格朗日乘子法:
优点:拉格朗日乘子法是一种常用的约束优化方法,对于带约束的优化问题有很好的效果。
缺点:计算复杂度较高,对于大规模数据和高维问题可能不适用。
No. 37 / 49
BP算法&EM算法
BP算法
优点:强大的非线性建模能力,并行计算,加速了模型训练的速度。
缺点:可能陷入局部最优解,对初始权重和学习率敏感,可能存在梯度消失或梯度爆炸问题。
EM算法
优点:强大的参数估计能力,对缺失数据和噪声具有鲁棒性。
缺点:对初始参数敏感,可能陷入局部最优解,需要迭代多次,计算复杂度较高,对模型假设
的敏感性。
线性&逻辑--回归模型的选择
选择线性回归还是逻辑回归取决于以下几个因素:
目标变量类型:首先需要确定目标变量的类型。如果目标变量是连续的,即需要进行回归分析
并预测一个数值,那么线性回归是更适合的选择。如果目标变量是离散的,即需要进行分类或
预测一个二元或多元的类别,那么逻辑回归是更适合的选择。
数据分布:了解数据的分布情况也是选择的重要因素。线性回归假设目标变量与自变量之间存
在线性关系,并且数据符合正态分布。逻辑回归假设目标变量的对数几率与自变量之间存在线
性关系,并且数据不需要满足正态分布。
特征关系:考虑自变量之间的关系。如果自变量之间存在线性关系,并且与目标变量之间的关
系也是线性的,那么线性回归可能是一个合适的选择。如果自变量之间存在非线性关系或与目
标变量之间的关系是非线性的,那么逻辑回归可能更适合。
解释性要求:如果解释性对于问题很重要,即需要解释模型中每个自变量的权重和对目标变量
的影响,那么线性回归可能更适合。线性回归模型具有较好的解释性,可以通过系数来解释自
变量与目标变量之间的关系。逻辑回归的解释性相对较弱,它主要用于预测分类概率。
分类模型的选择
选择GDA模型、逻辑回归、决策树和支持向量机(SVM)考虑以下因素:
数据类型和目标变量:首先确定问题的数据类型和目标变量类型。如果目标变量是二元分类或
多元分类,逻辑回归、决策树和SVM都可以作为分类算法选择。如果目标变量是连续的或需
要进行回归预测,逻辑回归不适用,可以选择决策树、SVM或其他回归算法。GDA模型主要
用于生成模型,对于分类和回归问题都可以应用。
数据规模和特征数量:考虑数据规模和特征数量对算法的影响。逻辑回归、决策树和GDA
型在处理大规模数据时都比较高效。SVM在处理大规模数据时需要更多的计算资源。决策树
对于高维数据和特征数量较大的情况下可能会面临维度灾难。
数据分布和非线性关系:了解数据的分布情况和自变量与目标变量之间的关系。GDA模型假
设数据服从特定的概率分布,适用于数据符合这些分布的情况。逻辑回归可以处理线性关系,
对于线性可分的问题可以较好地拟合数据。决策树可以处理非线性关系,并且对于特征之间的
交互作用具有较好的建模能力。SVM通过核函数处理非线性关系,能够更好地处理非线性可
分问题。
解释性和模型复杂度:考虑模型的解释性和复杂度要求。逻辑回归具有较好的解释性,可以通
过系数解释变量对目标变量的影响。决策树也具有一定的解释性,可以通过树结构和特征重要
性进行解释。SVM具有较好的泛化能力,但解释性相对较弱。GDA模型可以生成新样本,但
解释性相对较弱。
No. 38 / 49
激活函数
激活函数需要满足以下要求:
非线性:激活函数必须是非线性的,因为神经网络的主要优势在于其非线性建模能力。非线性
激活函数使神经网络能够学习复杂的非线性关系。
可微性:激活函数的导数需要存在并可计算,因为在反向传播算法中需要使用导数来更新网络
的权重和进行梯度下降优化。可微性使得神经网络的训练过程更加稳定和可靠。
饱和性:激活函数应具有适当的饱和性,即在输入信号较大或较小的情况下,激活函数的导数
不应过小或过大,以避免梯度消失或梯度爆炸的问题。
常见的激活函数及其优点和缺点如下:
Sigmoid函数(Logistic函数):
优点:将输入值映射到[0, 1]之间,输出概率形式,常用于二分类问题。在某些情况下,
可以将Sigmoid函数的输出解释为样本属于某个类别的概率。
缺点:Sigmoid函数存在梯度饱和的问题,导致梯度消失;输出不以零为中心,可能导
致梯度下降的不稳定性。
双曲正切函数(Tanh函数):
优点:将输入值映射到[-1, 1]之间,输出具有零中心,相对于Sigmoid函数在一定程度上
减轻了梯度消失问题。
缺点:仍然存在梯度饱和的问题,可能导致梯度消失;输出仍然不是非常大。
ReLU函数(Rectified Linear Unit):
优点:ReLU在正区间上线性增长,计算速度快;解决了梯度消失问题;具有稀疏激活
性,有助于模型的泛化能力。
缺点:ReLU在负区间上输出恒定为零,可能导致神经元死亡问题(输出永远为零);不
是零中心,可能导致梯度下降的不稳定性。
Leaky ReLU函数:
优点:Leaky ReLU在负区间上引入一个小的斜率,解决了ReLU函数的神经元死亡问
题;具有稀疏激活性,有助于模型的泛化能力。
缺点:Leaky ReLU在正区间上仍然线性增长,可能导致输出值较大。
Softmax函数:
优点:用于多类别分类问题,将输入映射到[0, 1]之间,并且输出值之和为1,可以解释
为类别的概率分布。
缺点:Softmax函数的输出受到其他类别的影响,可能导致梯度的分散性。
选择激活函数时,可以考虑以下因素:
对于二分类问题,可以使用Sigmoid函数作为激活函数;
对于多分类问题,可以使用Softmax函数作为输出层的激活函数;
在隐藏层中,可以尝试ReLULeaky ReLU函数,因为它们通常具有更好的收敛性和模型表达
能力;
如果使用ReLU函数导致神经元死亡问题,可以尝试Leaky ReLU函数;
特征选择与特征工程
特征选择的方法包括:
过滤式特征选择(Filter methods):通过对特征和目标变量之间的统计关系进行评估和排
序,选择具有最高相关性或显著性的特征。常用的方法包括皮尔逊相关系数、卡方检验、互信
息等。
包裹式特征选择(Wrapper methods):将特征选择看作是一个优化问题,通过尝试不同的
特征子集,使用机器学习模型进行评估和选择。常见的方法有递归特征消除(Recursive
Feature Elimination)和遗传算法等。
No. 39 / 49
嵌入式特征选择(Embedded methods):在模型训练的过程中,通过正则化项或内置的特
征选择算法自动选择重要的特征。常见的方法包括L1正则化(Lasso)、岭回归(Ridge
Regression)和决策树的特征重要性评估。
特征工程的方法包括:
特征缩放(Feature Scaling):将特征的数值范围缩放到相似的尺度,常见的方法有标准化
Standardization)和归一化(Normalization)。
特征编码(Feature Encoding):将非数值型特征转换为数值型特征,以便模型能够处理。
常见的方法有独热编码(One-Hot Encoding)、标签编码(Label Encoding)等。
特征构建(Feature Construction):基于原始特征进行组合、转换和生成新的特征,以提取
更高层次的信息。例如,多项式特征生成、特征交叉、离散化等。
特征选择和降维(Feature Selection and Dimensionality Reduction):通过选择最相关的
特征或使用降维技术(如主成分分析PCA和线性判别分析LDA)减少特征维度,以避免维度灾
难和提高模型的计算效率。
特征尺度维度问题及解决
在机器学习中,特征尺度、维度和其他属性不佳可能导致以下问题:
特征尺度不一致:
问题:不同特征的数值范围差异较大,导致某些特征对模型的影响过大或过小。
解决方法:特征缩放技术,如标准化(将特征缩放到均值为0,方差为1的标准正态分
布)、归一化(将特征缩放到固定范围,如[0,1][-1,1])。
高维度问题:
问题:特征维度过高,导致模型复杂度增加、计算资源需求增大,可能出现过拟合和维
度灾难问题。
解决方法:特征选择和降维技术,如过滤式特征选择、包裹式特征选择、嵌入式特征选
择、主成分分析(PCA)、线性判别分析(LDA)等。
冗余特征:
问题:存在高度相关的特征,增加了模型的计算复杂度,可能导致过拟合。
解决方法:特征选择方法,如相关系数分析、卡方检验、互信息等,选择最相关的特征
并去除冗余特征。
缺失值问题:
问题:数据集中存在缺失值,影响模型的训练和预测。
解决方法:缺失值处理方法,如删除缺失值的样本、均值填充、中值填充、众数填充、
插值法等。
噪声和异常值:
问题:数据集中存在噪声和异常值,干扰了模型的学习和泛化能力。
解决方法:噪声和异常值处理方法,如平滑技术(如移动平均)、截断或修剪异常值、
离群点检测和处理等。
类别不平衡问题:
问题:数据集中不同类别的样本数量差异较大,导致模型对少数类别预测能力较弱。
解决方法:采样方法,如过采样少数类别样本、欠采样多数类别样本、基于样本权重的
方法、合成新样本的方法(如SMOTE)等。
欠拟合与过拟合
欠拟合
可能原因:
特征不足:模型无法捕捉到数据中的复杂模式和关系,特征表示能力不足。
模型复杂度低:模型的表达能力有限,无法拟合数据中的复杂关系。
No. 40 / 49
数据噪声和异常值:噪声和异常值可能干扰模型的学习过程,导致欠拟合。
过早停止:在训练过程中,模型没有充分学习数据的特征,提前停止训练导致欠拟合。
解决办法:
增加特征数量:添加更多的相关特征,提供更多的信息给模型。
增加模型复杂度:使用更复杂的模型,如深度神经网络或非线性模型,以增加模型的表
达能力。
减少正则化强度:降低正则化参数的值,以减少对模型的约束,提高模型的灵活性。
收集更多的训练数据:增加更多的训练样本,以提供更全面和多样化的数据,帮助模型
更好地学习特征。
修正数据中的噪声和异常值:使用数据清洗方法去除噪声和异常值,以减少其对模型的
干扰。
使用集成学习方法:如随机森林、梯度提升树等,通过结合多个弱学习器来提高模型的
预测能力。
过拟合
可能原因:
数据量不足:训练样本过少,模型过于关注训练集中的噪声和异常值。
特征过多或噪声特征:特征维度过高,可能引入冗余或无关的特征,增加了过拟合的风
险。
模型复杂度过高:模型过于复杂,拥有大量参数,容易过度学习训练数据的细节。
训练时间过长:过长的训练时间可能导致模型过度拟合训练数据,忽略了泛化能力。
解决办法:
增加训练样本量:收集更多的训练数据,以减少过拟合风险,提供更全面的数据信息。
特征选择:选择最相关的特征,去除冗余和无关的特征,减少模型的复杂性。
正则化:引入正则化项,如L1正则化(Lasso)、L2正则化(Ridge),控制模型参数的
大小。
交叉验证:使用交叉验证技术,将数据集划分为训练集和验证集,进行模型选择和调
参,防止过拟合。
提前停止:在训练过程中监控验证集上的性能指标,当性能不再提升时停止训练,防止
过度拟合。
集成学习:使用集成学习方法,如随机森林、梯度提升树等,结合多个模型的预测结
果,减少过拟合的风险。
降维与升维
降维技术:
主要目的:将高维数据映射到较低维度的空间,以减少特征的数量和维度,提高模型的计算效
率和泛化能力,减轻维度灾难和过拟合问题。
常见方法:
主成分分析(Principal Component Analysis, PCA):将原始特征通过线性变换映射到
新的特征空间。
线性判别分析(Linear Discriminant Analysis, LDA):通过找到最佳的投影方向,将数
据映射到低维空间,使得同一类别的样本尽可能接近,不同类别的样本尽可能分开。
t-SNEt-Distributed Stochastic Neighbor Embedding):基于概率分布的非线性降维
方法,用于可视化高维数据和发现数据中的聚类结构。
升维技术:
主要目的:将低维数据映射到高维空间,以便于模型更好地学习和表示数据之间的复杂关系,
提高分类、聚类和回归等任务的性能。
常见方法:
No. 41 / 49
多项式特征生成(Polynomial Feature Generation):将原始特征进行组合,生成更高
阶的特征,以拓展特征空间。
核方法(Kernel Methods):通过将低维数据映射到高维特征空间,使其线性可分,以
便于在高维空间中学习更复杂的模式。常见的核方法包括线性核、多项式核和径向基函
数(RBF)核。
深度神经网络(Deep Neural Networks):通过多层非线性变换,将输入数据映射到高
维空间,以提取和表示更抽象、更复杂的特征。
损失函数
常见损失函数
均方误差(Mean Squared ErrorMSE):
用途:线性回归、回归问题
优点:可微分,容易优化;对离群值敏感
缺点:对异常值敏感;可能导致模型偏向于大的误差
交叉熵损失(Cross-Entropy Loss):
用途:分类问题,特别是二分类和多分类问题
优点:对于分类问题,交叉熵是一种常用且有效的损失函数;鼓励模型对正确类别的概
率高、错误类别的概率低
缺点:不适用于回归问题;可能出现梯度爆炸或梯度消失问题
对数损失(Log Loss):
用途:二分类问题、逻辑回归问题
优点:在二分类问题中,鼓励模型输出正确类别的概率接近10,较好地反映了分类任
务的本质
缺点:不适用于回归问题;可能出现梯度爆炸或梯度消失问题
感知损失(Hinge Loss):
用途:支持向量机(SVM)中的线性分类器
优点:在SVM中,鼓励正确分类的边界足够宽,有助于泛化性能
缺点:不适用于回归问题;不可微分;对于离正确分类边界较远的样本,梯度为0,无法
更新参数
大模型训练
大模型训练中常采用的技巧
学习率衰减:学习率衰减是在训练过程中逐渐降低学习率的方法。随着训练的进行,学习率的
降低可以帮助模型更好地收敛到最优解,避免震荡或发散。通过设置衰减策略,如按照固定的
步长或根据模型性能动态调整,可以有效提高训练效果。
AdagradAdagrad是一种自适应学习率方法,它根据每个参数的历史梯度信息来动态调整学
习率。该方法会为每个参数维护一个学习率累积平方的指数加权和,通过将学习率除以这个累
积和的平方根来缩放梯度。这样可以使得稀疏参数的学习率较大,稠密参数的学习率较小,有
助于更好地收敛。
AdadeltaAdadeltaAdagrad的改进版本,主要解决了Adagrad累积平方和过大导致学习
率持续下降的问题。Adadelta使用了一个滑动窗口的平均值来替代累积平方和,并且引入了
一个参数来控制学习率的缩放因子。这样可以使得学习率更加稳定,不会随着时间的增长而不
断减小。
RMSpropRMSprop也是一种自适应学习率方法,类似于Adadelta,它也使用了滑动窗口的
平均值来调整学习率。不同之处在于RMSprop仍然使用了累积平方和来缩放梯度,但引入了
一个衰减系数来控制历史梯度的权重。这样可以平衡新旧梯度信息的影响,进一步提高训练效
果。
学习率预热:在训练开始时先使用较小的学习率,然后逐渐增加学习率的方法。这可以帮助模
型在开始阶段更好地探索参数空间,并且在后期收敛时更加稳定。
No. 42 / 49
动量法梯度方向优化:动量法通过引入动量项来优化梯度方向,加速模型训练过程。动量项可
以看作是之前梯度的指数加权平均,可以帮助模型更好地跳出局部最优点,加快收敛速度。
Adam算法:Adam算法是一种结合了动量法和自适应学习率的优化算法。它维护了每个参数
的一阶矩估计和二阶矩估计,并通过对它们进行偏差修正来提高估计的准确性。Adam算法可
以自适应地调整学习率,并且在不同的参数更新步骤中具有较好的性能。
梯度截断:梯度截断是为了解决梯度爆炸或梯度消失的问题。当梯度的绝对值超过一定阈值
时,可以将其截断到阈值范围内,以避免梯度的不稳定性对模型训练的影响。
参数初始化:参数初始化是指在训练开始前对网络参数进行初始化的过程。合适的参数初始化
可以帮助模型更快地收敛并且避免陷入局部最优点。常见的参数初始化方法有随机初始化、零
初始化、Xavier初始化等。
数据归一化:数据归一化是将输入数据进行线性映射到一定范围内的过程。通过对输入数据进
行归一化,可以使得不同特征维度的数据具有相似的尺度,有助于模型更好地学习特征权重,
加快收敛速度。
逐层归一化:逐层归一化是在神经网络的每一层中对输入进行归一化的方法。它通过对每一层
的输入数据进行标准化,可以减少梯度消失或爆炸的问题,加速模型训练。
BN归一化:BN归一化是一种广泛应用的归一化方法,它在神经网络中每一层的输入上进行归
一化。通过对每一层的输入数据进行规范化处理,BN归一化可以使得每层的激活值保持在一
个稳定的范围内,有利于提高模型的训练效果。
数据标准化:数据标准化是将数据进行零均值化和单位方差化的过程。通过减去数据的均值并
除以标准差,可以将数据映射到均值为0、方差为1的分布,使得数据更易于处理和比较。
数据白化:数据白化是对数据进行线性变换,使得特征之间具有零相关性并且各个特征的方差
1。白化可以去除特征之间的冗余信息,提高模型的表达能力。
数据增强:数据增强是通过对原始数据进行一系列随机变换来生成更多的训练样本。数据增强
可以扩大训练集的规模,减轻过拟合问题,提高模型的泛化能力。常见的数据增强方法包括随
机裁剪、翻转、旋转、缩放等。
ChatGPT问题
GPT模型的基本架构及其关键组件:GPT模型基于Transformer架构,该架构由一堆自关注层和前
馈层组成。
GPT模型的关键组成部分如下:
标记嵌入:输入文本被标记化,每个标记都使用嵌入层映射到连续的向量表示。
Transformer编码器:令牌嵌入通过多个Transformer编码器层传递。每个编码器层由一个自
注意机制和一个前馈神经网络组成。自注意机制捕获输入序列中不同令牌之间的依赖关系。
位置编码:位置编码被添加到令牌嵌入中,以合并输入文本的顺序信息。
Softmax输出层:GPT模型的最后一层是线性变换,然后是Softmax激活,它在每个令牌的词
汇表上生成概率分布。
GPT模型的预训练和微调过程:
预训练:GPT模型是使用语言建模目标在大型文本数据语料库上进行预训练的。该模型学习在
给定先前上下文的情况下预测序列中的下一个令牌。预训练目标鼓励模型捕捉文本数据中的句
法和语义模式。
微调:在预训练之后,GPT模型会针对特定的文本生成任务进行微调。这涉及到在具有特定任
务目标的特定任务数据集上训练模型。微调过程允许模型适应目标任务并相应地生成文本。
微调用于文本生成的GPT模型的步骤:
准备一个具有输入输出对的特定任务数据集,用于文本生成。
将输入文本标记化,并将标记映射到其相应的嵌入。
定义微调目标,例如最大似然估计,并计算预测令牌和目标令牌之间的损失。
进行基于梯度的优化,以更新模型的参数并将损失降至最低。
重复多个时期的微调过程或直到收敛。
考虑超参数,如学习率、批量大小和正则化技术,如丢弃,以优化微调过程。
培训和部署GPT模型的挑战和局限性:
No. 43 / 49
计算资源:训练GPT模型需要大量的计算资源,因为它的大小很大,需要并行处理。
数据集偏差:GPT模型的性能在很大程度上取决于训练数据的质量和多样性。训练数据中存在
的偏见可以传播到生成的文本中。
控制和一致性:GPT模型可能对生成的文本缺乏控制,这使得生成具有特定属性或约束的文本
具有挑战性。确保长格式文本生成的一致性和连贯性也是一项挑战。
提高GPT模型性能和创造力的方法:
增加模型容量:使用具有更多参数的更大模型可以提高模型捕获文本数据中复杂模式的能力。
强化学习:将最大似然估计与强化学习技术相结合,例如使用策略梯度,可以鼓励模型生成更
具创造性和多样性的文本。
条件生成:将GPT模型条件化为特定的属性或控制代码可以对生成的文本进行更细粒度的控
制。
数据增强:使用反翻译或数据合成等技术增强训练数据可以增加训练示例的多样性,提高模型
的性能。
深度学习与大模型简答题
深度学习基础
定义深度学习并解释其关键特征:深度学习是机器学习的一个子领域,专注于训练具有多层的人工
神经网络(深度神经网络)来学习数据的分层表示。其关键特征包括自动特征提取、对大型数据集
的可扩展性以及学习复杂模式和表示的能力。
将浅层神经网络与深层神经网络进行比较:浅层神经网络通常只有一个隐藏层,而深层神经网络有
多个隐藏层。深度神经网络可以学习更复杂的表示,并捕捉数据中复杂的模式。它们的训练计算量
也更大,但提供了更高的表现力。
解释反向传播的概念及其在训练深度神经网络中的作用:反向传播是一种用于训练深度神经网络的
技术。它涉及使用链式规则计算网络参数(权重和偏差)相对于给定损失函数的梯度。然后使用梯
度通过梯度下降或其他优化算法来更新参数。
讨论消失梯度问题及其对深度神经网络的影响:当反向传播过程中计算的梯度在深度神经网络的层
中传播时变得极小时,就会出现消失梯度问题。这导致学习过程收敛缓慢或停滞不前。它经常发生
在具有许多层和激活函数的网络中,这些激活函数在某些区域饱和(变平),例如sigmoid函数。
缓解消失梯度问题的解决方案包括使用诸如ReLU或变体(例如,Leaky ReLU)之类的激活函数以
及使用诸如批量归一化之类的归一化技术。
描述深度学习中常用的正则化技术,以防止过度拟合:深度学习中的正则化技术有助于防止过拟
合,即模型学习记忆训练数据,而不是很好地推广到看不见的数据。常见的正则化技术包括L1L2
正则化(权重衰减)、丢弃和提前停止。这些技术为模型的参数引入了约束或惩罚,鼓励它学习更
简单、更稳健的表示。
生成对抗网络(GANs
解释GANs及其组件(生成器和鉴别器)的基本概念:生成对抗性网络由两个主要组件组成:生成
器和鉴别器。生成器旨在从随机噪声中生成真实的合成数据样本(例如,图像),而鉴别器试图在
生成的样本和来自训练数据的真实样本之间进行区分。生成器和鉴别器玩一个双人最小最大游戏,
生成器通过生成欺骗鉴别器的更真实的样本来改进,鉴别器通过更好地区分真实样本和虚假样本来
改进。
讨论GANs中的对抗性训练过程,以及生成器和鉴别器模型如何交互:GANs中的对抗性训练涉及
生成器和鉴别器网络的迭代训练。在每次训练迭代中,生成器生成假样本,鉴别器将它们与真实样
本一起进行分类。然后,来自鉴别器分类的梯度被用于更新生成器的参数,反之亦然。这个过程一
直持续到生成器和鉴别器都达到纳什均衡,生成器生成与真实样本无法区分的样本。
描述GAN中使用的损失函数(例如,发电机损失和鉴别器损失)及其目标:GANs为发生器和鉴别
器使用特定的损失函数。生成器损失旨在最大限度地提高鉴别器将生成的样本错误分类为真实样本
的概率,而鉴别器损失旨在最大程度地提高正确分类真实样本和生成样本的概率。最常用的损失函
数是二进制交叉熵损失。
No. 44 / 49
解释GAN培训过程中面临的挑战,如模式崩溃和不稳定,以及潜在的解决方案:GAN训练中的挑
战包括模式崩溃(生成器只学习生成有限种类的样本)、训练不稳定性以及在生成器和鉴别器之间
找到正确的平衡。解决这些挑战的解决方案包括架构修改(例如,使用更深的网络或合并跳过连
接)、修改损失函数(例如,具有梯度惩罚的Wasserstein GAN)和使用正则化技术(例如,向鉴
别器的输入添加噪声)。
讨论GANs在图像合成、风格转换或数据增强中的潜在应用:GANs在各个领域都有应用。在图像
合成中,GANs可以生成可用于艺术目的或数据增强的逼真图像。使用GANs的风格转移允许图像的
转换采用其他图像的风格。GANs还可以用于数据扩充,生成合成数据来补充训练数据集,并提高
模型的泛化能力。
VAE
描述变分自动编码器(VAE)的基本结构及其组件(编码器和解码器):VAE由一个编码器和一个
解码器组成。编码器接收输入数据样本并将其映射到潜在空间表示。解码器然后从潜在空间中获取
一个点,并重建原始输入数据样本。
解释潜在空间的概念以及VAE如何从潜在空间生成新样本:VAE中的潜在空间是编码器映射输入数
据样本的低维空间。它表示输入数据的压缩和连续表示。通过对潜在空间中的点进行采样并使其通
过解码器,VAE可以生成类似于输入数据分布的新样本。
讨论VAE中使用的损失函数,包括重建损失和Kullback-LeiblerKL)发散:VAE使用重建损失和
Kullback-LeiblerKL)发散的组合。重建损失测量原始输入样本和来自解码器的重建样本之间的
差异。KL散度测量潜在空间的学习分布和先验分布之间的差异,先验分布通常是多变量高斯分布。
损失函数旨在最小化重建误差和潜在空间分布与先验分布之间的偏差。
解释VAE中重建精度和潜在空间平滑度之间的权衡:VAE面临重建精度和潜在空间平滑度之间的权
衡。VAE旨在精确地重构输入数据,这需要低的重构误差。然而,这可能会导致一个更加分散和不
那么平滑的潜在空间。另一方面,强制使用平滑的潜在空间可以导致更广义的表示,但可能会牺牲
一些重建精度。两者之间的平衡取决于所学表示的具体应用和所需特性。
讨论VAE在数据压缩、异常检测或图像合成中的潜在应用:VAE在各个领域都有不同的应用。在数
据压缩中,VAE可以学习数据的紧凑表示,从而实现高效的存储和传输。对于异常检测,VAE可以
学习正常数据的表示并识别其偏差。在图像合成中,VAE可通过从潜在空间采样生成新图像,从而
创建新颖逼真的图像。
递归神经网络(RNN
描述递归神经网络的结构和工作原理:RNN是具有递归连接的神经网络,允许它们处理顺序数据。
RNN具有隐藏状态,该隐藏状态在每个时间步长基于当前输入和先前隐藏状态进行更新。这种隐藏
状态保留了以前时间步骤的信息,并使网络能够捕获数据中的时间相关性。
解释序列建模的概念以及RNN如何处理序列数据:序列建模包括捕获序列数据中的依赖项和模式。
RNN被设计为通过循环处理序列中的每个元素来处理序列数据,同时在每个时间步长更新隐藏状
态。这允许RNN利用先前步骤中的信息,在每个时间步长进行预测或生成输出。
讨论训练RNN过程中遇到的挑战,如梯度消失和爆炸,并提出潜在的解决方案:由于梯度消失和爆
炸等问题,训练RNN可能具有挑战性。当梯度随着时间的推移而减少时,就会出现消失梯度,这使
得网络很难学习长期依赖关系。另一方面,当梯度呈指数级增长时,会出现爆炸性梯度,导致训练
不稳定。这些问题的解决方案包括限制梯度大小的梯度剪裁,以及使用专门设计用于缓解这些问题
RNN变体,如长短期记忆(LSTM)或门控递归单元(GRU)。
解释不同类型的RNN变体,如LSTMGRU,以及它们的优势:LSTM(长短期记忆)和GRU(门
控递归单元)是RNN的流行变体,解决了标准RNN的局限性。LSTM引入了存储单元和门控机制,
允许网络随着时间的推移选择性地保留或忘记信息,从而实现更好的长期依赖性建模。GRU通过结
合存储单元和隐藏状态简化了LSTM架构,从而产生了一个计算效率更高的模型。LSTMGRU已被
证明在捕捉长期依赖性和缓解消失/爆炸梯度问题方面是有效的。
讨论RNN在自然语言处理、语音识别或时间序列分析中的潜在应用:RNN在各个领域都有应用。
在自然语言处理中,RNN可用于语言建模、情感分析和机器翻译等任务。在语音识别中,RNN可以
对音频信号中的时间相关性进行建模,并将其转换为文本。对于时间序列分析,RNN可以捕捉各种
领域的模式并预测未来价值,如金融、天气预报和股市预测。
No. 45 / 49
双向编码器表示转换(BERT
描述BERTBidirectional Encoder Representations from Transformers)的基本原理和主
要组成部分:BERT是一种基于Transformer架构的预训练模型,它通过双向编码器来学习词汇的上
下文相关表示。BERT由多个Transformer编码器层组成,其中包括自注意力机制和前馈神经网络。
通过预训练和微调的方式,BERT可以应用于各种下游自然语言处理任务。
解释BERT中的Transformer模型及其在自然语言处理任务中的作用:TransformerBERT中的关
键组件,它用于建模输入句子的上下文关系。Transformer利用自注意力机制可以捕捉输入句子中
的长距离依赖关系,并生成句子中每个位置的上下文表示。这种能力使得BERT能够更好地理解句
子的语义和语法结构,从而提供更好的表示和特征提取能力。
讨论BERT的预训练过程,包括掩码语言模型和下一句预测任务:BERT的预训练过程包括两个任
务:掩码语言模型和下一句预测。在掩码语言模型任务中,BERT会将输入句子中的一些单词随机
掩码,然后通过上下文中其他单词来预测被掩码的单词。下一句预测任务是为了训练BERT对两个
句子之间的关系进行建模,模型需要判断两个句子是否是相邻的句子。这两个任务的结合使得
BERT能够学习到丰富的语言表示和句子之间的关系。
解释BERT中的双向编码器方法如何捕捉上下文信息:BERT中的双向编码器方法允许模型同时利用
句子中前后两个方向的上下文信息。通过使用Transformer的自注意力机制,BERT可以对输入句子
的所有位置进行建模,并在每个位置生成上下文相关的表示。这种双向建模的能力使得BERT能够
捕捉到单词与其前后文之间的依赖关系,从而更好地理解句子的语义和语境。
讨论BERT在文本分类、命名实体识别或问答系统等任务中的应用:BERT在自然语言处理任务中具
有广泛的应用。在文本分类任务中,BERT可以将输入句子转化为上下文表示,并使用这些表示进
行分类。对于命名实体识别任务,BERT可以提取句子中的实体信息并进行识别。在问答系统中,
BERT可以理解问题和文本段落的关系,并根据上下文提供准确的答案。通过预训练和微调的方
式,BERT在这些任务中展现了强大的性能。
变分推断下界(ELBO
解释ELBOEvidence Lower Bound)的概念和其在变分推断中的作用:ELBO是一种用于变分
推断的目标函数,用于近似推断概率模型中的后验分布。ELBO通过将模型的边缘似然和后验分布
之间的KL散度相结合,提供了一个下界来近似计算后验分布。在变分推断中,ELBO用于优化近似
分布的参数,以使其更接近真实的后验分布。
详细解释ELBO的公式和其中的各个组成部分:ELBO的公式表示为ELBO = E[log p(X,Z) - log
q(Z|X)],其中E表示期望运算,p(X,Z)是观测数据和潜在变量的联合分布,q(Z|X)是近似的后验分
布。ELBO由两部分组成:第一部分是边缘似然(log p(X,Z)),它衡量模型生成观测数据和潜在变量
的可能性;第二部分是后验分布的负对数(log q(Z|X)),它衡量近似后验与真实后验之间的差异。
讨论ELBO的性质和优点:
ELBO是一个下界,可以用于近似计算难以解析求解的后验分布,如在变分推断中使用。
通过最大化ELBO,可以优化近似分布的参数,使其更接近真实的后验分布。
ELBO提供了一个可解释的目标函数,可以用于模型选择和比较不同的变分推断模型。
ELBO可以用于评估变分推断的质量和近似程度,以及对模型进行训练和调整。
ELBO在变分自编码器(VAE)等生成模型中起着关键作用,帮助学习潜在变量的表示和生成
新样本。
解释如何计算ELBO的近似值和优化近似分布的参数:计算ELBO的近似值可以通过采样和蒙特卡洛
方法进行,即从近似分布q(Z|X)中采样潜在变量Z,并使用这些采样值来估计ELBO的期望部分。优
化近似分布的参数可以使用梯度下降等优化算法,通过最大化ELBO来更新参数,使得近似分布更
接近真实的后验分布。
讨论ELBO在生成模型和变分推断中的应用:ELBO在生成模型和变分推断中有广泛的应用。在生成
模型中,ELBO被用于优化模型的参数和生成新的样本。在变分推断中,ELBO被用于近似计算难以
解析求解的后验分布,并优化近似分布的参数。ELBO为生成模型提供了一个可解释的目标函数,
并允许对模型进行训练和比较不同的变分推断方法。
No. 46 / 49
Diffusion Model
解释扩散模型(Diffusion Model)在机器学习中的作用和应用:扩散模型是一种用于建模数据演
化过程的统计模型。在机器学习中,扩散模型常用于时间序列数据的预测和分析,以及图像处理和
计算机视觉中的图像恢复和去噪等任务。扩散模型通过模拟信息在空间或时间上的传播过程,可以
捕捉数据的潜在动态变化。
解释扩散模型中的扩散过程是如何建模的,并讨论常用的扩散模型算法:扩散模型中的扩散过程通
常被建模为随机过程,其中数据或信息在空间或时间上以一定的规律传播。常用的扩散模型算法包
括随机游走模型、扩散方程模型和基于邻域传播的模型。随机游走模型通过定义随机步长和方向模
拟信息传播的路径。扩散方程模型则基于偏微分方程描述扩散过程的演化。基于邻域传播的模型则
考虑了信息在相邻数据点之间传播的影响。
讨论扩散模型中的参数估计问题,并介绍一种常用的参数估计方法:在扩散模型中,参数估计是确
定模型参数的过程,使模型能够更好地拟合数据。常用的参数估计方法包括最大似然估计(MLE
和贝叶斯推断。最大似然估计通过最大化观测数据的似然函数来估计参数值。贝叶斯推断则基于贝
叶斯定理,结合先验分布和观测数据,通过后验分布来估计参数。
解释扩散模型在时间序列预测中的应用,并讨论其中的挑战和解决方法:扩散模型在时间序列预测
中可以捕捉数据的演化过程,帮助预测未来的趋势和行为。然而,扩散模型在时间序列预测中面临
挑战,如噪声干扰、长期依赖和非线性关系。为了克服这些挑战,常用的解决方法包括引入噪声模
型来处理噪声干扰,使用长短期记忆网络(LSTM)等适用于捕捉长期依赖的模型,以及采用非线
性扩散模型来建模非线性关系。
讨论扩散模型在图像处理和计算机视觉中的应用,并举例说明:扩散模型在图像处理和计算机视觉
中具有广泛的应用。例如,扩散模型可以用于图像去噪,通过建模噪声的传播过程来恢复图像的清
晰度。另一个应用是图像恢复,其中扩散模型可以通过模拟图像中的信息传播过程来恢复损坏的图
像区域。此外,扩散模型还可以用于图像分割、纹理合成和显著性检测等任务。
Transformer
Transformer模型结构:
编码器(Encoder):
输入嵌入(Input Embedding):将输入序列的每个元素映射为一个向量表示。
位置编码(Positional Encoding):将位置信息编码为向量,加入输入嵌入中,以保留
序列的顺序信息。
多层编码器堆叠:由多个编码器层(Encoder Layer)堆叠而成。
自注意力机制(Self-Attention):计算输入序列中每个位置与所有其他位置的关联性,
并生成每个位置的上下文表示。
前馈神经网络(Feed-Forward Network):对每个位置的表示进行非线性变换。
编码器输出:最终的编码器输出序列,每个位置都包含了全局信息和位置特定的信息。
解码器(Decoder):
目标嵌入(Target Embedding):将目标序列的每个元素映射为一个向量表示。
位置编码(Positional Encoding):与编码器相同,将位置信息编码为向量,加入目标
嵌入中。
多层解码器堆叠:由多个解码器层(Decoder Layer)堆叠而成。
自注意力机制(Self-Attention):计算目标序列中每个位置与所有其他位置的关联性,
并生成每个位置的上下文表示。
编码器-解码器注意力机制(Encoder-Decoder Attention):利用编码器的信息来辅助
解码器生成与目标序列相关的表示。
前馈神经网络(Feed-Forward Network):对每个位置的表示进行非线性变换。
解码器输出:最终的解码器输出序列,包含了生成的目标序列。
自注意力机制的计算分为三个步骤:
查询(Query)计算:通过将输入序列乘以查询权重矩阵,得到查询向量。
键(Key)计算:通过将输入序列乘以键权重矩阵,得到键向量。
No. 47 / 49
值(Value)计算:通过将输入序列乘以值权重矩阵,得到值向量。 然后,通过计算查询向量
与所有键向量的点积,再进行softmax归一化,得到注意力权重。最后,将注意力权重与值向
量相乘并求和,得到自注意力机制的输出。
Transformer模型的解码器部分为什么要引入编码器-解码器注意力机制:引入编码器-解码器注意
力机制是为了充分利用编码器中的信息来辅助解码器生成与目标序列相关的表示。解码器在生成序
列时,可以通过对编码器中的每个位置应用注意力机制,将其作为输入的一部分。这样做可以帮助
解码器关注输入序列中与当前位置相关的信息,提高模型的翻译或生成能力。
Transformer模型中的位置编码有什么作用: 位置编码的作用是为输入序列中的每个位置添加位
置信息。由于Transformer模型没有使用循环或卷积操作来处理序列,无法直接捕捉到位置的信
息。位置编码通过将位置信息编码为向量,并将其与输入序列相加,使得模型能够感知和利用序列
中元素的顺序信息。这样可以帮助模型更好地理解输入序列的结构和上下文关系。
Transformer模型相比于循环神经网络(RNN)有哪些优势:
并行计算:由于Transformer模型中的自注意力机制可以并行计算,不需要像RNN那样逐个位
置进行计算,因此可以在训练和推理过程中加速计算。
长距离依赖:Transformer模型中的自注意力机制可以捕捉全局依赖关系,使得模型能够更好
地处理长距离依赖问题,而RNN由于循环结构的限制,对长距离依赖的建模能力较弱。
消除梯度消失和梯度爆炸:RNN在处理长序列时容易出现梯度消失或梯度爆炸的问题,而
Transformer模型中的注意力机制可以更好地传递梯度信息,减轻了这些问题。
全局关联性:Transformer模型中的自注意力机制能够建立全局的关联性,使得模型能够同时
考虑输入序列中所有位置的信息,而RNN则是逐个位置顺序处理的。
可解释性:由于自注意力机制的机制明确且可视化,Transformer模型相对于RNN更易于解释
和理解。
CNN
CNN中的核心操作步骤:
定义卷积核(Filter/Kernel):确定卷积核的大小和参数,通常是一个小的二维矩阵。
移动窗口:将卷积核以固定的步长(Stride)在输入数据上移动,通常是从左上角开始逐行扫
描。
点积运算:将卷积核与输入数据窗口进行元素级别的点积运算,将窗口内的元素与卷积核的对
应元素相乘,然后将所有乘积结果相加。
激活函数:对点积运算的结果应用激活函数,如ReLU
移动窗口并重复:将窗口按步长继续向右移动,重复上述操作,直到覆盖完整个输入数据。
生成特征图:将每次卷积操作的结果按照顺序叠加在一起,形成输出的特征图。
池化层(Pooling Layer)在卷积神经网络中的作用是什么:
降采样:通过减小特征图的空间尺寸,降低模型的复杂度和计算量。
参数减少:池化层没有可学习的参数,不会增加模型的参数数量。
特征不变性:池化层可以提取输入特征的主要信息并保持不变性,对输入的轻微变化具有一定
的鲁棒性。
空间平移不变性:池化操作在局部区域上进行,对于图像中的局部模式不依赖于其精确位置,
具有一定的平移不变性。
在卷积神经网络中,全连接层(Fully Connected Layer)的作用是什么:
特征映射到类别:通过全连接层将卷积神经网络中的高层特征映射到最终的输出类别,用于分
类任务。
非线性变换:全连接层通过引入非线性激活函数,可以对卷积特征进行更复杂的非线性变换,
提高模型的拟合能力。
参数学习:全连接层具有可学习的权重和偏置参数,可以根据训练数据进行优化和学习。
卷积神经网络与全连接神经网络有什么区别:
局部连接和权重共享:CNN中的卷积层通过局部连接和权重共享的方式,可以更高效地处理
高维输入数据(如图像),减少参数量,提取空间局部特征。
No. 48 / 49
平移不变性:CNN中的卷积操作具有平移不变性,对于图像中的局部模式不依赖于其精确位
置,使得模型具有一定的平移不变性。
参数数量:相比于全连接层,CNN具有较少的参数数量,更加适合处理高维输入数据,减少
了过拟合的风险。
层级结构:CNN通常由多个卷积层和池化层交替堆叠而成,可以逐渐提取和组合特征,形成
更抽象和高级的表示。
应用领域:CNN主要应用于图像处理和计算机视觉任务,而全连接神经网络可以应用于各种
类型的数据处理和建模。
No. 49 / 49